#ifndef __SIM808_H
#define __SIM808_H

#include <wiringPi.h>
#include <wiringSerial.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

#define call_path "/home/pi/Graduation_design/Gd_Project/txtfile/callnum.txt"
#define sms_path "/home/pi/Graduation_design/Gd_Project/txtfile/smsnum.txt"

class SIM808{
public:
	SIM808();
	int All_Init();//全部初始化
	int send_gpssms();//发送带有gps信息的短信
	int call_phone();//拨打电话
	int close_phone();//挂断电话
	int answer_phone();//接听电话
	void set_callcom(char *callnum);//设置打电话命令
	void set_smscom(char *smsnum);//设置短信命令
	int write_num(int index, char * num);//向文件中写入号码
	void judge_sms();//判断是否有新短信
protected:
	int read_num();//从文件中读取号码
	int judge_str(const char *p);//判断“OK”用
	int set_smsmode();//短信模式设置
	int set_gpsmode();//gps模式设置
	void send_sms(char *p);
	int get_gpsdata();//获取gps数据，并且拼接到短信内容中
private:
	int fd;//串口文件描述符
	FILE *call_fd;//号码存储文件
	FILE *sms_fd;
	int i;//循环用变量
	char judge_arr[20];//判断“OK”用
	char sms_com[50];
	char call_com[20];
	char sms_num[15];//接收短信号码
	char call_num[15];//拨打电话号码
	char content[300];//发送的短信内容
	char gps_inf[200];//gps定位信息
	
};
#endif